package com.huangyi.adminservice.house.service;


import com.huangyi.adminapi.house.domain.dto.SearchHouseListReqDTO;
import com.huangyi.adminservice.house.domain.dto.*;
import com.huangyi.commoncore.domain.dto.BasePageDTO;

import java.util.List;


public interface IHouseService {
    /**
     * 新增或编辑房源
     * @param reqDTO 新增或编辑房源DTO
     * @return 房源ID
     */
    Long addOrEdit(HouseAddOrEditReqDTO reqDTO);


    HouseDTO detail(Long houseId);

    BasePageDTO<HouseDescDTO> list(HouseListReqDTO reqDTO);

    void editStatus(HouseStatusEditReqDTO reqDTO);

    /**
     * 根据房源id缓存房源信息
     * @param houseId 房源id
     */
    void cacheHouse(Long houseId);

    /**
     * 根据用户id, 获取该用户下的全部房源id
     * @param userId 用户id
     * @return 该用户下的全部房源id
     */
    List<Long> listByUserId(Long userId);

    /**
     * 刷新全量房源缓存
     */
    void refreshHouseIds();

    /**
     * 查询房源列表，支持筛选、排序、翻页
     */
    BasePageDTO<HouseDTO> searchList(SearchHouseListReqDTO searchHouseListReqDTO);
}
